package com.cdtye.itps.cms.dao.lineSite.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.cdtye.itps.cms.dao.enums.DelFlagEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@ApiModel("段辖线路与区间站场关系")
@Data
@Accessors(chain = true)
@TableName("JC_LINE_SITE")
public class JcLineSite {
    @ApiModelProperty("段辖线路与区间站场关系ID")
    @TableId(
            value = "LINE_SITE_ID",
            type = IdType.ASSIGN_UUID
    )
    private String lineSiteId;
    @ApiModelProperty("起始公里标")
    private Double beginRoad;
    @ApiModelProperty("行别表ID")
    private String directionId;
    @ApiModelProperty("电气化股道数")
    private Long electricityNum;
    @ApiModelProperty("截止公里标")
    private Double endRoad;
    @ApiModelProperty(value = "共享数据中心编码")
    private String mCode;
    @ApiModelProperty("备注信息")
    private String memo;
    @ApiModelProperty("电化开通时间")
    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JSONField(
            format = "yyyy-MM-dd HH:mm:ss"
    )
    private Date openDate;
    @ApiModelProperty("排序号")
    private Long orderNum;
    @ApiModelProperty("段辖线路ID")
    private String seclineId;
    @ApiModelProperty("区间站场ID")
    private String siteId;
    @ApiModelProperty("区间站场名称")
    private String siteName;
    @ApiModelProperty("是否判断封锁1：判断，0：不判断")
    private Integer isCheckBlock;
    @ApiModelProperty("运营里程")
    private Double operateKilomeaters;
    @ApiModelProperty("创建时间")
    @TableField(
            value = "CREATE_DATETIME",
            fill = FieldFill.INSERT
    )
    private Date createDatetime;
    @ApiModelProperty("更新时间")
    @TableField(
            value = "UPDATE_DATETIME",
            fill = FieldFill.INSERT_UPDATE
    )
    private Date updateDatetime;
    @ApiModelProperty("删除标志，Y=是，N=否")
    @TableField(
            value = "DEL_FLAG",
            fill = FieldFill.INSERT
    )
    private String delFlag;
    @ApiModelProperty("创建人")
    @TableField(
            value = "CREATE_BY",
            fill = FieldFill.INSERT
    )
    private String createBy;
    @ApiModelProperty("更新人")
    @TableField(
            value = "UPDATE_BY",
            fill = FieldFill.INSERT_UPDATE
    )
    private String updateBy;

    public JcLineSite() {
    }

    public String getLineSiteId() {
        return this.lineSiteId;
    }

    public Double getBeginRoad() {
        return this.beginRoad;
    }

    public String getDirectionId() {
        return this.directionId;
    }

    public Long getElectricityNum() {
        return this.electricityNum;
    }

    public Double getEndRoad() {
        return this.endRoad;
    }

    public String getMemo() {
        return this.memo;
    }

    public Date getOpenDate() {
        return this.openDate;
    }

    public Long getOrderNum() {
        return this.orderNum;
    }

    public String getSeclineId() {
        return this.seclineId;
    }

    public String getSiteId() {
        return this.siteId;
    }

    public String getSiteName() {
        return this.siteName;
    }

    public Integer getIsCheckBlock() {
        return this.isCheckBlock;
    }

    public Double getOperateKilomeaters() {
        return this.operateKilomeaters;
    }

    public Date getCreateDatetime() {
        return this.createDatetime;
    }

    public Date getUpdateDatetime() {
        return this.updateDatetime;
    }

    public String getDelFlag() {
        return this.delFlag;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public JcLineSite setLineSiteId(String lineSiteId) {
        this.lineSiteId = lineSiteId;
        return this;
    }

    public JcLineSite setBeginRoad(Double beginRoad) {
        this.beginRoad = beginRoad;
        return this;
    }

    public JcLineSite setDirectionId(String directionId) {
        this.directionId = directionId;
        return this;
    }

    public JcLineSite setElectricityNum(Long electricityNum) {
        this.electricityNum = electricityNum;
        return this;
    }

    public JcLineSite setEndRoad(Double endRoad) {
        this.endRoad = endRoad;
        return this;
    }

    public JcLineSite setMemo(String memo) {
        this.memo = memo;
        return this;
    }

    public JcLineSite setOpenDate(Date openDate) {
        this.openDate = openDate;
        return this;
    }

    public JcLineSite setOrderNum(Long orderNum) {
        this.orderNum = orderNum;
        return this;
    }

    public JcLineSite setSeclineId(String seclineId) {
        this.seclineId = seclineId;
        return this;
    }

    public JcLineSite setSiteId(String siteId) {
        this.siteId = siteId;
        return this;
    }

    public JcLineSite setSiteName(String siteName) {
        this.siteName = siteName;
        return this;
    }

    public JcLineSite setIsCheckBlock(Integer isCheckBlock) {
        this.isCheckBlock = isCheckBlock;
        return this;
    }

    public JcLineSite setOperateKilomeaters(Double operateKilomeaters) {
        this.operateKilomeaters = operateKilomeaters;
        return this;
    }

    public JcLineSite setCreateDatetime(Date createDatetime) {
        this.createDatetime = createDatetime;
        return this;
    }

    public JcLineSite setUpdateDatetime(Date updateDatetime) {
        this.updateDatetime = updateDatetime;
        return this;
    }

    public JcLineSite setDelFlag(String delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public JcLineSite setCreateBy(String createBy) {
        this.createBy = createBy;
        return this;
    }

    public JcLineSite setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof JcLineSite)) {
            return false;
        } else {
            JcLineSite other = (JcLineSite)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$lineSiteId = this.getLineSiteId();
                Object other$lineSiteId = other.getLineSiteId();
                if (this$lineSiteId == null) {
                    if (other$lineSiteId != null) {
                        return false;
                    }
                } else if (!this$lineSiteId.equals(other$lineSiteId)) {
                    return false;
                }

                Object this$beginRoad = this.getBeginRoad();
                Object other$beginRoad = other.getBeginRoad();
                if (this$beginRoad == null) {
                    if (other$beginRoad != null) {
                        return false;
                    }
                } else if (!this$beginRoad.equals(other$beginRoad)) {
                    return false;
                }

                Object this$directionId = this.getDirectionId();
                Object other$directionId = other.getDirectionId();
                if (this$directionId == null) {
                    if (other$directionId != null) {
                        return false;
                    }
                } else if (!this$directionId.equals(other$directionId)) {
                    return false;
                }

                label206: {
                    Object this$electricityNum = this.getElectricityNum();
                    Object other$electricityNum = other.getElectricityNum();
                    if (this$electricityNum == null) {
                        if (other$electricityNum == null) {
                            break label206;
                        }
                    } else if (this$electricityNum.equals(other$electricityNum)) {
                        break label206;
                    }

                    return false;
                }

                label199: {
                    Object this$endRoad = this.getEndRoad();
                    Object other$endRoad = other.getEndRoad();
                    if (this$endRoad == null) {
                        if (other$endRoad == null) {
                            break label199;
                        }
                    } else if (this$endRoad.equals(other$endRoad)) {
                        break label199;
                    }

                    return false;
                }

                Object this$memo = this.getMemo();
                Object other$memo = other.getMemo();
                if (this$memo == null) {
                    if (other$memo != null) {
                        return false;
                    }
                } else if (!this$memo.equals(other$memo)) {
                    return false;
                }

                label185: {
                    Object this$openDate = this.getOpenDate();
                    Object other$openDate = other.getOpenDate();
                    if (this$openDate == null) {
                        if (other$openDate == null) {
                            break label185;
                        }
                    } else if (this$openDate.equals(other$openDate)) {
                        break label185;
                    }

                    return false;
                }

                label178: {
                    Object this$orderNum = this.getOrderNum();
                    Object other$orderNum = other.getOrderNum();
                    if (this$orderNum == null) {
                        if (other$orderNum == null) {
                            break label178;
                        }
                    } else if (this$orderNum.equals(other$orderNum)) {
                        break label178;
                    }

                    return false;
                }

                Object this$seclineId = this.getSeclineId();
                Object other$seclineId = other.getSeclineId();
                if (this$seclineId == null) {
                    if (other$seclineId != null) {
                        return false;
                    }
                } else if (!this$seclineId.equals(other$seclineId)) {
                    return false;
                }

                Object this$siteId = this.getSiteId();
                Object other$siteId = other.getSiteId();
                if (this$siteId == null) {
                    if (other$siteId != null) {
                        return false;
                    }
                } else if (!this$siteId.equals(other$siteId)) {
                    return false;
                }

                label157: {
                    Object this$siteName = this.getSiteName();
                    Object other$siteName = other.getSiteName();
                    if (this$siteName == null) {
                        if (other$siteName == null) {
                            break label157;
                        }
                    } else if (this$siteName.equals(other$siteName)) {
                        break label157;
                    }

                    return false;
                }

                label150: {
                    Object this$isCheckBlock = this.getIsCheckBlock();
                    Object other$isCheckBlock = other.getIsCheckBlock();
                    if (this$isCheckBlock == null) {
                        if (other$isCheckBlock == null) {
                            break label150;
                        }
                    } else if (this$isCheckBlock.equals(other$isCheckBlock)) {
                        break label150;
                    }

                    return false;
                }

                Object this$operateKilomeaters = this.getOperateKilomeaters();
                Object other$operateKilomeaters = other.getOperateKilomeaters();
                if (this$operateKilomeaters == null) {
                    if (other$operateKilomeaters != null) {
                        return false;
                    }
                } else if (!this$operateKilomeaters.equals(other$operateKilomeaters)) {
                    return false;
                }

                label136: {
                    Object this$createDatetime = this.getCreateDatetime();
                    Object other$createDatetime = other.getCreateDatetime();
                    if (this$createDatetime == null) {
                        if (other$createDatetime == null) {
                            break label136;
                        }
                    } else if (this$createDatetime.equals(other$createDatetime)) {
                        break label136;
                    }

                    return false;
                }

                Object this$updateDatetime = this.getUpdateDatetime();
                Object other$updateDatetime = other.getUpdateDatetime();
                if (this$updateDatetime == null) {
                    if (other$updateDatetime != null) {
                        return false;
                    }
                } else if (!this$updateDatetime.equals(other$updateDatetime)) {
                    return false;
                }

                label122: {
                    Object this$delFlag = this.getDelFlag();
                    Object other$delFlag = other.getDelFlag();
                    if (this$delFlag == null) {
                        if (other$delFlag == null) {
                            break label122;
                        }
                    } else if (this$delFlag.equals(other$delFlag)) {
                        break label122;
                    }

                    return false;
                }

                Object this$createBy = this.getCreateBy();
                Object other$createBy = other.getCreateBy();
                if (this$createBy == null) {
                    if (other$createBy != null) {
                        return false;
                    }
                } else if (!this$createBy.equals(other$createBy)) {
                    return false;
                }

                Object this$updateBy = this.getUpdateBy();
                Object other$updateBy = other.getUpdateBy();
                if (this$updateBy == null) {
                    if (other$updateBy != null) {
                        return false;
                    }
                } else if (!this$updateBy.equals(other$updateBy)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof JcLineSite;
    }

    public int hashCode() {
        int result = 1;
        Object $lineSiteId = this.getLineSiteId();
        result = result * 59 + ($lineSiteId == null ? 43 : $lineSiteId.hashCode());
        Object $beginRoad = this.getBeginRoad();
        result = result * 59 + ($beginRoad == null ? 43 : $beginRoad.hashCode());
        Object $directionId = this.getDirectionId();
        result = result * 59 + ($directionId == null ? 43 : $directionId.hashCode());
        Object $electricityNum = this.getElectricityNum();
        result = result * 59 + ($electricityNum == null ? 43 : $electricityNum.hashCode());
        Object $endRoad = this.getEndRoad();
        result = result * 59 + ($endRoad == null ? 43 : $endRoad.hashCode());
        Object $memo = this.getMemo();
        result = result * 59 + ($memo == null ? 43 : $memo.hashCode());
        Object $openDate = this.getOpenDate();
        result = result * 59 + ($openDate == null ? 43 : $openDate.hashCode());
        Object $orderNum = this.getOrderNum();
        result = result * 59 + ($orderNum == null ? 43 : $orderNum.hashCode());
        Object $seclineId = this.getSeclineId();
        result = result * 59 + ($seclineId == null ? 43 : $seclineId.hashCode());
        Object $siteId = this.getSiteId();
        result = result * 59 + ($siteId == null ? 43 : $siteId.hashCode());
        Object $siteName = this.getSiteName();
        result = result * 59 + ($siteName == null ? 43 : $siteName.hashCode());
        Object $isCheckBlock = this.getIsCheckBlock();
        result = result * 59 + ($isCheckBlock == null ? 43 : $isCheckBlock.hashCode());
        Object $operateKilomeaters = this.getOperateKilomeaters();
        result = result * 59 + ($operateKilomeaters == null ? 43 : $operateKilomeaters.hashCode());
        Object $createDatetime = this.getCreateDatetime();
        result = result * 59 + ($createDatetime == null ? 43 : $createDatetime.hashCode());
        Object $updateDatetime = this.getUpdateDatetime();
        result = result * 59 + ($updateDatetime == null ? 43 : $updateDatetime.hashCode());
        Object $delFlag = this.getDelFlag();
        result = result * 59 + ($delFlag == null ? 43 : $delFlag.hashCode());
        Object $createBy = this.getCreateBy();
        result = result * 59 + ($createBy == null ? 43 : $createBy.hashCode());
        Object $updateBy = this.getUpdateBy();
        result = result * 59 + ($updateBy == null ? 43 : $updateBy.hashCode());
        return result;
    }

    public String toString() {
        return "JcLineSite(lineSiteId=" + this.getLineSiteId() + ", beginRoad=" + this.getBeginRoad() + ", directionId=" + this.getDirectionId() + ", electricityNum=" + this.getElectricityNum() + ", endRoad=" + this.getEndRoad() + ", memo=" + this.getMemo() + ", openDate=" + this.getOpenDate() + ", orderNum=" + this.getOrderNum() + ", seclineId=" + this.getSeclineId() + ", siteId=" + this.getSiteId() + ", siteName=" + this.getSiteName() + ", isCheckBlock=" + this.getIsCheckBlock() + ", operateKilomeaters=" + this.getOperateKilomeaters() + ", createDatetime=" + this.getCreateDatetime() + ", updateDatetime=" + this.getUpdateDatetime() + ", delFlag=" + this.getDelFlag() + ", createBy=" + this.getCreateBy() + ", updateBy=" + this.getUpdateBy() + ")";
    }
}
